home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Resources / Chat & Communication / Digsby build 37 / digsby_setup.exe / lib / ZSI / fault.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2008-10-13  |  9KB  |  246 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. from ZSI import _copyright, _children, _child_elements, _get_idstr, _stringtypes, _seqtypes, _Node, SoapWriter, ZSIException
  5. from ZSI.TCcompound import Struct
  6. from ZSI.TC import QName, URI, String, XMLString, AnyElement, UNBOUNDED
  7. from ZSI.wstools.Namespaces import SOAP, ZSI_SCHEMA_URI
  8. from ZSI.wstools.c14n import Canonicalize
  9. from ZSI.TC import ElementDeclaration
  10. import traceback
  11. import cStringIO as StringIO
  12.  
  13. class Detail:
  14.     
  15.     def __init__(self, any = None):
  16.         self.any = any
  17.  
  18.  
  19. Detail.typecode = Struct(Detail, [
  20.     AnyElement(aname = 'any', minOccurs = 0, maxOccurs = 'unbounded', processContents = 'lax')], pname = 'detail', minOccurs = 0)
  21.  
  22. class FaultType:
  23.     
  24.     def __init__(self, faultcode = None, faultstring = None, faultactor = None, detail = None):
  25.         self.faultcode = faultcode
  26.         self.faultstring = faultstring
  27.         self.faultactor = faultactor
  28.         self.detail = detail
  29.  
  30.  
  31. FaultType.typecode = Struct(FaultType, [
  32.     QName(pname = 'faultcode'),
  33.     String(pname = 'faultstring'),
  34.     URI(pname = (SOAP.ENV, 'faultactor'), minOccurs = 0),
  35.     Detail.typecode,
  36.     AnyElement(aname = 'any', minOccurs = 0, maxOccurs = UNBOUNDED, processContents = 'lax')], pname = (SOAP.ENV, 'Fault'), inline = True, hasextras = 0)
  37.  
  38. class ZSIHeaderDetail:
  39.     
  40.     def __init__(self, detail):
  41.         self.any = detail
  42.  
  43.  
  44. ZSIHeaderDetail.typecode = Struct(ZSIHeaderDetail, [
  45.     AnyElement(aname = 'any', minOccurs = 0, maxOccurs = UNBOUNDED, processContents = 'lax')], pname = (ZSI_SCHEMA_URI, 'detail'))
  46.  
  47. class ZSIFaultDetailTypeCode(ElementDeclaration, Struct):
  48.     schema = ZSI_SCHEMA_URI
  49.     literal = 'FaultDetail'
  50.     
  51.     def __init__(self, **kw):
  52.         Struct.__init__(self, ZSIFaultDetail, [
  53.             String(pname = (ZSI_SCHEMA_URI, 'string')),
  54.             String(pname = (ZSI_SCHEMA_URI, 'trace'), minOccurs = 0)], pname = (ZSI_SCHEMA_URI, 'FaultDetail'), **kw)
  55.  
  56.  
  57.  
  58. class ZSIFaultDetail:
  59.     
  60.     def __init__(self, string = None, trace = None):
  61.         self.string = string
  62.         self.trace = trace
  63.  
  64.     
  65.     def __str__(self):
  66.         if self.trace:
  67.             return self.string + '\n[trace: ' + self.trace + ']'
  68.         
  69.         return self.string
  70.  
  71.     
  72.     def __repr__(self):
  73.         return '<%s.ZSIFaultDetail %s>' % (__name__, _get_idstr(self))
  74.  
  75.  
  76. ZSIFaultDetail.typecode = ZSIFaultDetailTypeCode()
  77.  
  78. class URIFaultDetailTypeCode(ElementDeclaration, Struct):
  79.     schema = ZSI_SCHEMA_URI
  80.     literal = 'URIFaultDetail'
  81.     
  82.     def __init__(self, **kw):
  83.         Struct.__init__(self, URIFaultDetail, [
  84.             String(pname = (ZSI_SCHEMA_URI, 'URI')),
  85.             String(pname = (ZSI_SCHEMA_URI, 'localname'))], pname = (ZSI_SCHEMA_URI, 'URIFaultDetail'), **kw)
  86.  
  87.  
  88.  
  89. class URIFaultDetail:
  90.     
  91.     def __init__(self, uri = None, localname = None):
  92.         self.URI = uri
  93.         self.localname = localname
  94.  
  95.  
  96. URIFaultDetail.typecode = URIFaultDetailTypeCode()
  97.  
  98. class ActorFaultDetailTypeCode(ElementDeclaration, Struct):
  99.     schema = ZSI_SCHEMA_URI
  100.     literal = 'ActorFaultDetail'
  101.     
  102.     def __init__(self, **kw):
  103.         Struct.__init__(self, ActorFaultDetail, [
  104.             String(pname = (ZSI_SCHEMA_URI, 'URI'))], pname = (ZSI_SCHEMA_URI, 'ActorFaultDetail'), **kw)
  105.  
  106.  
  107.  
  108. class ActorFaultDetail:
  109.     
  110.     def __init__(self, uri = None):
  111.         self.URI = uri
  112.  
  113.  
  114. ActorFaultDetail.typecode = ActorFaultDetailTypeCode()
  115.  
  116. class Fault(ZSIException):
  117.     Client = 'SOAP-ENV:Client'
  118.     Server = 'SOAP-ENV:Server'
  119.     MU = 'SOAP-ENV:MustUnderstand'
  120.     
  121.     def __init__(self, code, string, actor = None, detail = None, headerdetail = None):
  122.         if detail is not None and type(detail) not in _seqtypes:
  123.             detail = (detail,)
  124.         
  125.         if headerdetail is not None and type(headerdetail) not in _seqtypes:
  126.             headerdetail = (headerdetail,)
  127.         
  128.         (self.code, self.string, self.actor, self.detail, self.headerdetail) = (code, string, actor, detail, headerdetail)
  129.         ZSIException.__init__(self, code, string, actor, detail, headerdetail)
  130.  
  131.     
  132.     def DataForSOAPHeader(self):
  133.         if not self.headerdetail:
  134.             return None
  135.         
  136.         return ZSIHeaderDetail(self.headerdetail)
  137.  
  138.     
  139.     def serialize(self, sw):
  140.         detail = None
  141.         if self.detail is not None:
  142.             detail = Detail()
  143.             detail.any = self.detail
  144.         
  145.         pyobj = FaultType(self.code, self.string, self.actor, detail)
  146.         sw.serialize(pyobj, typed = False)
  147.  
  148.     
  149.     def AsSOAP(self, **kw):
  150.         header = self.DataForSOAPHeader()
  151.         sw = SoapWriter(**kw)
  152.         self.serialize(sw)
  153.         if header is not None:
  154.             sw.serialize_header(header, header.typecode, typed = False)
  155.         
  156.         return str(sw)
  157.  
  158.     
  159.     def __str__(self):
  160.         strng = str(self.string) + '\n'
  161.         if hasattr(self, 'detail'):
  162.             if hasattr(self.detail, '__len__'):
  163.                 for d in self.detail:
  164.                     strng += str(d)
  165.                 
  166.             else:
  167.                 strng += str(self.detail)
  168.         
  169.         return strng
  170.  
  171.     
  172.     def __repr__(self):
  173.         return '<%s.Fault at %s>' % (__name__, _get_idstr(self))
  174.  
  175.     AsSoap = AsSOAP
  176.  
  177.  
  178. def FaultFromNotUnderstood(uri, localname, actor = None):
  179.     detail = None
  180.     headerdetail = URIFaultDetail(uri, localname)
  181.     return Fault(Fault.MU, 'SOAP mustUnderstand not understood', actor, detail, headerdetail)
  182.  
  183.  
  184. def FaultFromActor(uri, actor = None):
  185.     detail = None
  186.     headerdetail = ActorFaultDetail(uri)
  187.     return Fault(Fault.Client, 'Cannot process specified actor', actor, detail, headerdetail)
  188.  
  189.  
  190. def FaultFromZSIException(ex, actor = None):
  191.     if not getattr(ex, 'str', None):
  192.         pass
  193.     mystr = str(ex)
  194.     mytrace = getattr(ex, 'trace', '')
  195.     elt = '<ZSI:ParseFaultDetail>\n<ZSI:string>%s</ZSI:string>\n<ZSI:trace>%s</ZSI:trace>\n</ZSI:ParseFaultDetail>\n' % (mystr, mytrace)
  196.     if getattr(ex, 'inheader', 0):
  197.         detail = None
  198.         headerdetail = elt
  199.     else:
  200.         detail = elt
  201.         headerdetail = None
  202.     return Fault(Fault.Client, 'Unparseable message', actor, detail, headerdetail)
  203.  
  204.  
  205. def FaultFromException(ex, inheader, tb = None, actor = None):
  206.     tracetext = None
  207.     if tb:
  208.         
  209.         try:
  210.             lines = []([ '%s:%d:%s' % (name, line, func) for name, line, func, text in traceback.extract_tb(tb) ])
  211.         except:
  212.             pass
  213.  
  214.         tracetext = lines
  215.     
  216.     exceptionName = ''
  217.     
  218.     try:
  219.         exceptionName = ':'.join([
  220.             ex.__module__,
  221.             ex.__class__.__name__])
  222.     except:
  223.         pass
  224.  
  225.     elt = ZSIFaultDetail(string = exceptionName + '\n' + str(ex), trace = tracetext)
  226.     if inheader:
  227.         detail = None
  228.         headerdetail = elt
  229.     else:
  230.         detail = elt
  231.         headerdetail = None
  232.     return Fault(Fault.Server, 'Processing Failure', actor, detail, headerdetail)
  233.  
  234.  
  235. def FaultFromFaultMessage(ps):
  236.     pyobj = ps.Parse(FaultType.typecode)
  237.     if pyobj.detail == None:
  238.         detailany = None
  239.     else:
  240.         detailany = pyobj.detail.any
  241.     return Fault(pyobj.faultcode, pyobj.faultstring, pyobj.faultactor, detailany)
  242.  
  243. if __name__ == '__main__':
  244.     print _copyright
  245.  
  246.